ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε τις ανάγκες ενός χρήστη να απαριθμείτε τους χρήστες μιας βάσης δεδομένων να επεξηγείτε τους όρους «οντότητες» και «κατηγορήματα» να κάνετε το διάγραμμα σχέσεων-οντοτήτων μιας βάσης δεδομένων να σχεδιάζετε μια βάση δεδομένων να αποφασίζετε για τους πίνακες και τους τύπους δεδομένων που θα συμπεριλάβετε σε μία βάση δεδομένων να ορίζετε πεδία-κλειδιά και ευρετήρια να επεξηγείτε την έννοια «κανονικοποίηση πινάκων» ΕΝΝΟΙΕΣ-KΛΕΙΔΙΑ Οντότητα Κατηγόρημα Πίνακας Εγγραφή Πεδίο Πεδίο-Κλειδί Βάση Δεδομένων Συσχέτιση Πινάκων Ακεραιότητα Δεδομένων Οδηγός Ευρετήριο Κριτήριο Πρωτεύον Κλειδί Σχεσιακή Βάση Δεδομένων Μ Ε Τ Α Ι Χ Μ Ι Ο 3
BAΣEIΣ ΔEΔOMENΩN KAI ΠAPOYΣIAΣEIΣ Σ. ΠΑΠΑΔΑΚΗΣ, Ν. ΧΑΤΖΗΠΕΡΗΣ ΛΙΓΗ ΘΕΩΡΙΑ Σε κάθε επιχείρηση ή οργανισμό και σε κάθε γραφείο ή υπηρεσία υπάρχει μία πληθώρα στοιχείων που πρέπει να καταγραφεί κατάλληλα και να αποθηκευτεί με τέτοιον τρόπο, ώστε να μπορεί εύκολα να ανακτηθεί και να επεξεργαστεί. Τα στοιχεία που είναι σε τυποποιημένη μορφή (κατάλληλη για αποθήκευση και επεξεργασία από μηχανή Η/Υ) και μπορούν να αποκτούν νόημα για τον άνθρωπο σε ένα συγκεκριμένο πλαίσιο αναφοράς ονομάζονται δεδομένα. Για παράδειγμα η φράση «Ο φίλος μου Γιώργος Φανουράκης, που μένει στην οδό Κνωσού 1 στα Πατήσια, γεννήθηκε στις 17/9/1954 στην Αθήνα, έχει ύψος 1,85 και χρώμα μαλλιών καστανό» είναι μια πληροφορία. Αν αναλυθεί (εικόνα 1.1.1), βλέπουμε ότι αποτελείται από δεδομένα τα οποία συνδέονται, όπως φαίνεται στον παρακάτω πίνακα. Πληροφορία Επεξήγηση Δεδομένα Επώνυμο Φανουράκης Όνομα Γιώργος Ημερομηνία Γέννησης 17/9/1954 Τόπος Γέννησης Αθήνα Διεύθυνση Κατοικίας Κνωσού 1, Πατήσια Ανάστημα 1,85 μ. Χρώμα μαλλιών Καστανό Εικόνα 1.1.1: Ανάλυση πληροφορίας σε δεδομένα Πολλά από τα δεδομένα δεν είναι στατικά, αλλά συνήθως μεταβάλλονται. Ανάλογα με την ημερομηνία που ζητάμε στοιχεία, τα δεδομένα αλλάζουν. Βάση δεδομένων (Database) είναι ένα οργανωμένο σύνολο στοιχείων που αφορούν ή σχετίζονται με ένα συγκεκριμένο θέμα από το οποίο ένας ή περισσότεροι χρήστες μπορούν να διαχειρίζονται δεδομένα και να αντλούν πληροφορίες για διάφορους σκοπούς. Η προσωπική σας ατζέντα, ο τηλεφωνικός κατάλογος, ένα ορθογραφικό λεξικό, οι καρτέλες των ασθενών ή των βιβλίων, το πρόγραμμα των σινεμά, ο κατάλογος δίσκων μουσικής, είναι μερικές μόνο από τις δεκάδες βάσεις δεδομένων που χρησιμοποιείτε καθημερινά στη ζωή σας. Στο παραδοσιακό σύστημα οργάνωσης μιας βάσης δεδομένων, μια «χάρτινη» καρτέλα συγκεντρώνει όλα τα στοιχεία που σας ενδιαφέρει να διατηρείτε για κά- 4 Μ Ε Τ Α Ι Χ Μ Ι Ο
ΚΕΦΑΛΑΙΟ 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ θε αντικείμενο (οντότητα) που ανήκει στη βάση. Τα στοιχεία αυτά δεν γράφονται ανακατωμένα αλλά σε συγκεκριμένες θέσεις που βοηθούν τη μετέπειτα επεξεργασία και χρησιμοποίησή τους. Σύστημα Διαχείρισης Βάσεων Δεδομένων (DBMS Data Base Management System) είναι μία εφαρμογή (λογισμικό αποθήκευσης και ανάκλησης δεδομένων) που επιτρέπει να δημιουργείτε, να οργανώνετε και να διαχειρίζεστε βάσεις δεδομένων στον ηλεκτρονικό υπολογιστή. Ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ) διευκολύνει το σχεδιασμό της βάσης δεδομένων, τον ορισμό των τύπων δεδομένων που θα αποθηκεύονται στο υλικό του υπολογιστή και την ενημέρωση των στοιχείων. Ελέγχει την πρόσβαση επιτρέποντας τις αντίστοιχες ενέργειες μόνο στους εξουσιοδοτημένους χρήστες και δίνει δυνατότητα προσπέλασης σε πολλούς χρήστες ταυτόχρονα. Κατά την καταχώριση ή τη μεταβολή των δεδομένων, φροντίζει για την τήρηση των κανόνων ασφαλείας και των κανόνων ορθότητας που έχουν τεθεί. Προστατεύει από βλάβες υλικού με την τήρηση αντιγράφων ασφαλείας και τη δυνατότητα ανάκλησης δεδομένων που καταστράφηκαν. Το μοντέλο που κυριαρχεί σήμερα είναι το σχεσιακό πρότυπο οργάνωσης των δεδομένων (RDBMS Relational Data Base Management System). Μία από τις πιο δημοφιλείς εφαρμογές διαχείρισης βάσεων δεδομένων είναι η Access της Microsoft. Άλλα τέτοια συστήματα διαχείρισης βάσεων δεδομένων που έχουν χρησιμοποιηθεί μέχρι σήμερα είναι: η dbase, η FoxPro, η Paradox, η Oracle, η Ingress, η Sy-Base, η Progress, η DB2. Χρήστες μιας βάσης δεδομένων ονομάζονται είτε οι άνθρωποι που τη σχεδιάζουν, τη δημιουργούν, τη συντηρούν και τη διαγράφουν, είτε οι άνθρωποι που εισάγουν, τροποποιούν ή διαγράφουν τα δεδομένα της. Σε κάθε κατηγορία χρηστών παρέχονται διαφορετικά όρια εξουσιοδότησης ανάλογα με το επίπεδο στο οποίο ανήκουν. Κάθε χρήστης βλέπει «διαφορετικά» τη βάση δεδομένων. Για παράδειγμα ο απλός χρήστης ενδιαφέρεται μόνο για να πάρει τις πληροφορίες που θέλει και όχι για το πώς είναι αποθηκευμένα τα δεδομένα στον υπολογιστή. Μοντέλα βάσεων δεδομένων: α. το ιεραρχικό β. το δικτυακό γ. το σχεσιακό δ. το αντικειμενοστραφές Κατηγορίες χρηστών: Διαχειριστής (Συντήρηση συστήματος, έλεγχος πόρων) Ιδιοκτήτης Βάσης (Διαχείριση των χρηστών και των δικαιωμάτων τους) Χρήστης Υψηλής διαβάθμισης (Εισαγωγή, μεταβολή, διαγραφή δεδομένων) Απλός Χρήστης (Αναζήτηση ανάκτηση δεδομένων, εκτυπώσεις) Μ Ε Τ Α Ι Χ Μ Ι Ο 5
BAΣEIΣ ΔEΔOMENΩN KAI ΠAPOYΣIAΣEIΣ Σ. ΠΑΠΑΔΑΚΗΣ, Ν. ΧΑΤΖΗΠΕΡΗΣ Σχεδίαση Βάσης Δεδομένων Η καλή σχεδίαση της βάσης δεδομένων σάς δίνει τη δυνατότητα να βρίσκετε εύκολα και γρήγορα τα στοιχεία που θέλετε και διευκολύνει τη συντήρησή της. Τα δεδομένα αποθηκεύονται σε πίνακες. Κάθε πίνακας περιέχει δεδομένα για ένα μόνο θέμα και κάθε στοιχείο αποθηκεύεται μόνο μία φορά σε ένα σημείο. Αυτό έχει ως συνέπεια, όταν κάνετε μία μεταβολή, να αλλάζει η τιμή του δεδομένου (π.χ. κινητό τηλέφωνο) σε ένα μόνο σημείο στη βάση δεδομένων και αυτή η αλλαγή να εμφανίζεται αυτόματα οπουδήποτε θέλετε. Στη συνέχεια τα διάφορα είδη ερωτημάτων που έχετε σχεδιάσει εμφανίζουν τις πληροφορίες που χρειάζεστε. Ένα ερώτημα μπορεί να εμφανίζει ένα υποσύνολο δεδομένων (π.χ. όλοι οι πελάτες της Κρήτης) ή συνδυασμούς δεδομένων από διαφορετικούς πίνακες, (π.χ. τα προϊόντα που περιέχουν οι παραγγελίες των πελατών το τελευταίο τρίμηνο). Για να σχεδιάσετε και να οργανώσετε μια βάση δεδομένων για ένα πρόβλημα του πραγματικού κόσμου υπάρχουν πολλές μέθοδοι. Εδώ θα διακρίνουμε και θα περιγράψουμε τις βασικές έννοιες που πρέπει να λαμβάνονται υπόψη όταν σχεδιάζετε μια βάση δεδομένων. Τις οντότητες, τα κατηγορήματα ή ιδιότητες, τις σχέσεις μεταξύ οντοτήτων και τις ιδιότητες-κλειδιά. Είδη οντοτήτων: Άνθρωποι (Υπάλληλοι, Πελάτες, Προμηθευτές) Τόποι (Αποθήκες, Πόλεις, Καταστήματα) Γεγονότα (Παραγγελία, Παράδοση, Αγορά, Πώληση) Αντικείμενα (Προϊόν, Πρώτη ύλη, Μηχάνημα) Μια οντότητα αποτελεί τον γενικό σκελετό με τη βοήθεια του οποίου εμφανίζονται οι διάφορες περιπτώσεις ή συμβάντα των στοιχείων. Κάθε συγκεκριμένη τιμή μιας οντότητας ονομάζεται στιγμιότυπο. Οντότητες είναι τα στοιχεία (με υλική ή πνευματική υπόσταση) του πραγματικού κόσμου για τα οποία ενδιαφέρεται κάποιος να τηρεί αρχεία με πληροφορίες. Κάθε οντότητα έχει ένα όνομα για να αναφέρεστε σε αυτή και ένα σύνολο από ιδιότητες (κατηγορήματα) που τη χαρακτηρίζουν. Κατηγορήματα ή ιδιότητες μιας οντότητας είναι τα επιμέρους στοιχεία που καθορίζουν τα χαρακτηριστικά της συγκεκριμένης οντότητας. Για παράδειγμα, εάν θέλετε να σχεδιάσετε τη βάση δεδομένων μιας εμπορικής επιχείρησης, μπορείτε να διακρίνετε τις οντότητες: ΠΡΟΪΟΝ, ΠΕΛΑΤΗΣ, ΠΡΟΜΗΘΕΥΤΗΣ, ΑΓΟΡΑ, ΠΩΛΗΣΗ, ΠΑΡΑΓΓΕΛΙΑ. Οι ιδιότητες ή κατηγορήματα της οντότητας ΠΡΟΪΟΝ μπορεί να είναι: Είδος, Περιγραφή,Τιμή, ενώ της οντότητας ΠΕΛΑΤΗΣ μπορεί να είναι: Επώνυμο, Όνομα, AΦΜ, Διεύθυνση,Τηλέφωνο κ.λπ. Επομένως, στη βάση δεδομένων θα υπάρχουν ομάδες εγγραφών καταχωριμένες σε μορφή πίνακα, που θα αναφέρονται στην οντότητα ΠΡΟΪΟΝ και θα είναι της μορφής: 6 Μ Ε Τ Α Ι Χ Μ Ι Ο
ΚΕΦΑΛΑΙΟ 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Κωδικός Είδος Περιγραφή Τιμή 1 ΕΚΤΥΠΩΤΗΣ HP DESKJET 970c 280 ú 2 ΕΚΤΥΠΩΤΗΣ HP LASERJET 4 1.375 ú 3 ΟΘΟΝΗ EISO 17 SE 475 ú 4 ΟΘΟΝΗ SONY 17 D 450 ú 5 ΠΟΝΤΙΚΙ MICROSOFT OPTICAL 28 ú Πώς γίνεται η οργάνωση των δεδομένων Οι βάσεις δεδομένων στο φυσικό επίπεδο αποθηκεύονται σε αρχεία (με μορφή bytes), τα οποία φυλάσσονται στις μονάδες αποθήκευσης του υπολογιστή. Τα αρχεία στο λογικό επίπεδο αποτελούνται από ένα σύνολο εγγραφών. Κάθε εγγραφή αποτελείται από ένα σύνολο τιμών με καθορισμένο τύπο δεδομένων για καθένα από τα πεδία της. Ο τύπος δεδομένων καθορίζει τη μορφή των στοιχείων που αποθηκεύετε και τον αποθηκευτικό χώρο που δεσμεύετε. Η εμφάνιση των δεδομένων σε μια βάση δεδομένων γίνεται με τη μορφή πίνακα δύο διαστάσεων σε γραμμές και στήλες. Κάθε γραμμή αποτελεί μία εγγραφή και κάθε στήλη στην ίδια γραμμή αποτελεί ένα διαφορετικό πεδίο της εγγραφής. Σε μία τουλάχιστον στήλη υπάρχουν διαφορετικές τιμές σε κάθε γραμμή. Κάθε τέτοια στήλη ονομάζεται υποψήφιο κλειδί. Ένα τουλάχιστον από τα υποψήφια κλειδιά χρησιμοποιείται για την ταυτοποίηση της εγγραφής και αυτό ονομάζεται πρωτεύον κλειδί. Καθένα από τα υπόλοιπα υποψήφια Μια εγγραφή είναι μοναδική σε έναν πίνακα, μόνο όταν δεν υπάρχει άλλη εγγραφή στον ίδιο πίνακα με τις ίδιες ακριβώς τιμές σε όλα τα πεδία της. Το πεδίο (ή ο συνδυασμός πεδίων) που μας εξασφαλίζει ότι κάθε εγγραφή είναι μοναδική λέγεται κλειδί. κλειδιά ονομάζεται εναλλακτικό κλειδί. Τα πεδία μίας οντότητας χωρίζονται σε δύο κατηγορίες, αυτά που ανήκουν στο κλειδί της και αυτά που δεν ανήκουν. Για να μπορείτε να αναφέρεστε σε μία συγκεκριμένη εγγραφή μιας οντότητας ώστε να την εντοπίζετε, πρέπει να υπάρχει τουλάχιστον ένα (ή περισσότερα πεδία (ιδιότητες) που να είναι μοναδικά για κάθε εγγραφή. Το πεδίο αυτό ονομάζεται κλειδί. Εάν έχετε ένα πεδίο, τότε αναφέρεστε σε απλό κλειδί ενώ εάν είναι περισσότερα σε σύνθετο κλειδί. Συσχέτιση ή σχέση είναι η σύνδεση των οντοτήτων που μπορεί να εξασφαλίζει την ορθότητα (με κανόνες ακεραιότητας) των δεδομένων που εισάγονται. Για να διατηρήσετε τη συσχέτιση ανάμεσα στις οντότητες, πρέπει να έχουν κάτι κοινό ένα τουλάχιστο κατηγόρημα το πεδίο-κλειδί. Στην περίπτωση των σχεσιακών βάσεων δεδομένων η δημιουργία μιας σχέσης ανάμεσα σε πίνακες (οντότητες) σας επιτρέπει να τους χειριστείτε σαν να ήταν ένας πίνακας. Μ Ε Τ Α Ι Χ Μ Ι Ο 7